#ifndef __Character_h__
#define __Character_h__

#include <Ogre.h>
#include "MyMotionState.h"
#include "BulletVehicle.h"

#define LIGHT_MASK_CHARACTER 1 << 3

class Character: public BulletVehicle
{
  protected:
    // Atributos Bullet --------------------------------------------------

    btDiscreteDynamicsWorld* _pWorld;
    btCylinderShape* _pCollisionShape;
    MyMotionState* _pMotionState;
    btRigidBody* _pRigidBody;

    // Atributos Ogre ----------------------------------------------------

    Ogre::SceneManager* _pSceneManager;
    Ogre::SceneNode* _pNode;
    Ogre::SceneNode* _pSubNode;
    Ogre::Entity* _pEntity;

    // Character attributes ----------------------------------------------
    int _life;

  public:
    Character(btDiscreteDynamicsWorld* pWorld,
        btCylinderShape* pCollisionShape,
        Ogre::SceneManager* pSceneManager,
        OpenSteer::Vec3 position,
        const char* mesh);
    ~Character();

    int getLife();
    void setLife(int life);
    void yaw(const Ogre::Radian& angle);
    Ogre::Vector3 getPosition();
    Ogre::SceneNode* getSceneNode();

    virtual bool doDamage(int damage);
    virtual void doDead();
};

#endif
